package DAOs;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import Entidades.EnumCategoria;
import Entidades.Vendedor;
import Excecoes.ExececaoCategoriaVendedorIncorreta;

public class DAOVendedor extends DAOItem{
	private final int posicaoArrayCodigo = 0;
	private final int posicaoArrayNome = 1;
	private final int posicaoArrayCategoria = 2;
	private static Map<String,Vendedor> vendedores = new HashMap<String,Vendedor>();
	
	public DAOVendedor() {
	}
	
	private EnumCategoria defineCategoria(String str) throws ExececaoCategoriaVendedorIncorreta{
		EnumCategoria categoria = null;
		switch(str){
			case "1":
				categoria = EnumCategoria.CATEGORIA1;
			break;
			case "2":
				categoria = EnumCategoria.CATEGORIA2;
			break;
			default:
				throw new ExececaoCategoriaVendedorIncorreta("Categoria incorreta");
		}
		return categoria;
	}
	
	@Override
	protected void criaItens(List<String[]> dadosFiltadros) throws ExececaoCategoriaVendedorIncorreta{
		for(String[] strs : dadosFiltadros){
			EnumCategoria categoria = defineCategoria(strs[posicaoArrayCategoria]);
			Vendedor vendedor = new Vendedor(strs[posicaoArrayCodigo], strs[posicaoArrayNome], categoria, null);
			if(!vendedores.containsKey(vendedor.getCodigo())){
				vendedores.put(vendedor.getCodigo(), vendedor);
			}else{
				Vendedor atualizaVendedor = vendedores.get(vendedor.getCodigo());
				atualizaVendedor.setNome(vendedor.getNome());
				atualizaVendedor.setCategoria(vendedor.getCategoria());
			}
        }
	}

	public static Map<String, Vendedor> getVendedores() {
		return vendedores;
	}

	public static void setVendedores(Map<String, Vendedor> vendedores) {
		DAOVendedor.vendedores = vendedores;
	}
}
